Kaeru no Tame ni Kane wa Naru Technical Notes
v1.0 - 6/27/2011

Opening Text (0xB629 – B7A8)

Text Table (0xB629 – 0xB6B8):
A table of 72, 2 byte entries.  Each entry points to a font tile.  The address of the font tile pointed to is equal to:
<2-Byte Entry> + 0x50000

Text (0xB6B9 – 0xB7B2):
Bytes refer to indexes in the above Text Table.  The entry in the text table pointed to is equal to:
(<Byte Value>*2 - 0x30) + 0xB629

Each paragraph is made up of three lines of 16 bytes each.  This is followed by the New Game and Continue options.

•	Paragraph 1
o	Line 1:  0xB6B9 – 0xB6C8	むか～し　むかし
o	Line 2:  0xB6C9 – 0xB6D8	大変　なかのよい　２つの国に
o	Line 3:  0xB6D9 – 0xB6E8	２人の　王子セマが　おりました。
•	Paragraph 2
o	Line 4:	0xB6E9 – 0xB6F8	<Blank>
o	Line 5:	0xB6F9 – 0xB708	１人は　チャッカリものの
o	Line 6:	0xB709 – 0xB718	カスターど王国の　  王子セマ。
•	Paragraph 3
o	Line 7:	0xB719 – 0xB728 	<Blank>
o	Line 8:	0xB729 – 0xB738	もう１ひとは　あわてんぼうの
o	Line 9:	0xB739 – 0xB748	サブレ王国の　  王子サマ。
•	Paragraph 4
o	Line 10:  0xB749 – 0xB758	２人は　小さなころから　
o	Line 11:  0xB759 – 0xB768	ナニをやっても　ライバルでした。
o	Line 12:  0xB769 – 0xB778	<Blank>
•	Paragraph 5
o	Line 13:  0xB779 – 0xB788	これは　そんな
o	Line 14:  0xB789 – 0xB798	２ひとの　王子サマの
o	Line 15:  0xB799 – 0xB7A8	ぼうけんの　ものがたり　です。
•	Options
o	Start:  0xB7A9 – 0xB7AD	はじめから
o	Continue:  0xB7AE – 0xB7B2	つづき

Diary / Save Screen Strings (0xE210 - 0xE478)
0xE210:　日記ちょう
0xE22E:　 王子
0xE234:　日記ちょう
0xE242:　どの日記で
0xE24E:　はじめますか？
0xE27A:　どの日記を
0xE288:　けしますか？
0xE2B0:　どうしますか？
0xE304:　どのぺーじからよみますか？
0xE33E:　どの日記に
0xE34C:　きろくする？
0xE374:　きろくしました
0xE390:　たびを
0xE39E:　つづけますか？
0xE3AE:　日記けす
0xE3BC:　もどる
0xE3CA:　日記つける
0xE3E6:　日記たる
0xE402:　YES
0xE41E:　NO
0xE43A:　OOOO王子
0xE456:　OOOO王子
0xE478:　日め
Dialog Address Table (0x1CB2E – 0x1DD64)
The address of the nth line’s address is stored in a 2 byte pair at 

0x1CB2E + (0x02 * <N>)

To find a line in the dialog block, reverse the bytes of the 2 byte pair and add one of the following offsets: 

Offset:
Lines N=0..556:	0x70000
Lines N=557..889:	0x74000
Lines N=890..1621:	0x78000
Lines N=1622..2331: 	0x7C000

Although 2331 line addresses are stored, only 1348 lines exist in the game as many line addresses refer to the same line (or are junk data).

163 – 164
165 – 176
206 – 208
214 – 224
234 – 236
237 – 238
252 – 254
313 – 512
897 – 1024
1188 – 1280
1372 – 1536
1682 – 1792
1959 – 2048
2129 – 2304
Name Screen Background & Text (0x4F520 – 0x4F687)
The name screen background includes the text ‘あなたの　なまえを　かきこんで下さい’ and the decorative border.  Each of the 0x12 rows have 0x14 bytes that specify the tiles to be drawn. The tile drawn is located at:
<Byte Value> - 0x20 + 0x50500
Diary Screen Background & Text (0x4F688 – 0x4F7EF)
Each byte of the diary screen refers to a tile which can be viewed with the GB Tile Viewer in Visual Boy Advance. 
Graphics (Font) (0x50000 – 0x51FFF)
All font graphics are in a standard Gameboy format.  They can be viewed and modified with Tile Layer Pro.  Most characters use a single 0x10 byte tile.  Jumbo characters, located at the end of this region, are made up of four 0x10 byte tiles.
Dialog Blocks (0x70000 – 0x7FFFF)
Dialog is stored in four blocks offset by 0x4000 bytes each (0x70000, 0x74000, 0x78000, 0x7C0000).  Any extra space at the end of a block is filled with 0xFF, the terminator byte.

Every line is in the following format, with the first line starting at 0x70000.  0xF1 to 0xFF are control bytes.
Header Byte 1	The first byte of a line.  Controls window position or shape.  No changes needed for translation and exact byte meaning was not investigated in detail.

0x00
0x01
0x02
0x03
0x04
0x09
0x12
0x69
0x87
0xF1
0xF4
0xFE	
Header Byte 2	The second byte of a line.  Controls window position or shape.  No changes needed for translation and exact byte meaning was not investigated in detail.

0x00
0x01
0x03
0x10
0x18
0x23
0x29
0x55
0x69
0x98
0xA2
0xA8
0xCA
0xFD	
Regular Mode	A line always starts in this mode at the third byte (after the two header bytes).  Unless a control byte is encountered, the font tile at
0x50000 * 0x10 * <byte value>
is displayed.  The character in each tile in the Japanese version of the game is displayed below.

0x00	あ
0x01	い
0x02	う
0x03	え
0x04	お
0x05	か
0x06	き
0x07	く
0x08	け
0x09	こ
0x0A	さ
0x0B	し
0x0C	す
0x0D	せ
0x0E	そ
0x0F	た
0x10	ち
0x11	つ
0x12	て
0x13	と
0x14	な
0x15	に
0x16	ぬ
0x17	ね
0x18	の
0x19	は
0x1A	ひ
0x1B	ふ
0x1C	へ
0x1D	ほ
0x1E	ま
0x1F	み
0x20	む
0x21	め
0x22	も
0x23	や
0x24	ゆ
0x25	よ
0x26	ら
0x27	り
0x28	る
0x29	れ
0x2A	ろ
0x2B	わ
0x2C	を
0x2D	ん
0x2E	ぁ
0x2F	ぃ
0x30	ぅ
0x31	ぇ
0x32	ぉ
0x33	ゃ
0x34	ゅ
0x35	ょ
0x36	っ
0x37	が
0x38	ぎ
0x39	ぐ
0x3A	げ
0x3B	ご
0x3C	ざ
0x3D	じ
0x3E	ず
0x3F	ぜ
0x40	ぞ
0x41	だ
0x42	ぢ
0x43	づ
0x44	で
0x45	ど
0x46	ば
0x47	び
0x48	ぶ
0x49	べ
0x4A	ぼ
0x4B	ぱ
0x4C	ぴ
0x4D	ぷ
0x4E	ぺ
0x4F	ぽ
0x50	ア
0x51	イ
0x52	ウ
0x53	エ
0x54	オ
0x55	カ
0x56	キ
0x57	ク
0x58	ケ
0x59	コ
0x5A	サ
0x5B	シ
0x5C	ス
0x5D	セ
0x5E	ソ
0x5F	タ
0x60	チ
0x61	ツ
0x62	テ
0x63	ト
0x64	ナ
0x65	ニ
0x66	ヌ
0x67	ネ
0x68	ノ
0x69	ハ
0x6A	ヒ
0x6B	フ
0x6C	ヘ
0x6D	ホ
0x6E	マ
0x6F	ミ
0x70	ム
0x71	メ
0x72	モ
0x73	ヤ
0x74	ユ
0x75	ヨ
0x76	ラ
0x77	リ
0x78	ル
0x79	レ
0x7A	ロ
0x7B	ワ
0x7C	ヲ
0x7D	ン
0x7E	ァ
0x7F	ィ
0x80	ゥ
0x81	ェ
0x82	ォ
0x83	ャ
0x84	ュ
0x85	ョ
0x86	ッ
0x87	ガ
0x88	ギ
0x89	グ
0x8A	ゲ
0x8B	ゴ
0x8C	ザ
0x8D	ジ
0x8E	ズ
0x8F	ゼ
0x90	ゾ
0x91	ダ
0x92	ヂ
0x93	ヅ
0x94	デ
0x95	ド
0x96	バ
0x97	ビ
0x98	ブ
0x99	ベ
0x9A	ボ
0x9B	パ
0x9C	ピ
0x9D	プ
0x9E	ペ
0x9F	ポ
0xA0	～
0xA1	！
0xA2	？
0xA3	ー
0xA4	.
0xA5	..
0xA6	<Heart>
0xA7	&
0xA8	、
0xA9	。
0xAA	(
0xAB	)
0xAC	<Circle>
0xAD	<X>
0xAE	<Triangle>
0xAF	_
0xB0	A
0xB1	B
0xB2	C
0xB3	D
0xB4	E
0xB5	F
0xB6	G
0xB7	H
0xB8	I
0xB9	J
0xBA	K
0xBD	N
0xBE	O
0xBF	P
0xC1	R
0xC2	S
0xC3	T
0xC4	U
0xC5	V
0xC8	Y
0xC9	Z
0xCA	<Begin Line>
0xCB	<Mid Line>
0xCC	<End Line>
0xCD	<Cursor>
0xCE	「
0xCF	」
0xD0	0
0xD1	1
0xD2
0xD3
0xD4	4
0xD5	5
0xD6	6
0xD7	7
0xD8	8
0xD9	9
0xDA	同
0xE7	心	

Regular Mode (Control Bytes)	0xF0     <Unused>

0xF1     <Pause – 1st Byte of 2 Byte Pair>
     Pauses dialog for dramatic effect.  Values used:
•	0x00, 0x02, 0x03, 0x05, 0x08, 0x10, 0x15, 0x20, 0x30

0xF2     <Animation>
     Causes animation in first person dialog sequence.

0xF3     <Unused?>

0xF4     <Kanji Mode>

0xF5     <Choice - First Byte of 2 Byte Pair>
•	0x00 <Yes/No Choice>
•	0x01 <Number Choice>
•	0x02 <Pick item during fight>

0xF6     <Icon Display – 1st Byte of 2 Byte Pair>
     Displays 2x2 tile icon located at:
      0x48000 + 0x40 * <2nd Byte value>

0xF7     <Shifts to Jumbo Mode>

0xF8     <Music Change – 1st Byte of 2 Byte Pair>
•	0x06
•	0x08
•	0x0C
•	0x0E
•	0x11
•	0x13
•	0x1A
•	0x1D
•	0x1E
•	0x21
•	0xFA
•	0xFF – <Stop Music>

0xF9     <SFX – 1st Byte of 2 Byte Pair>
•	0x23 – Error
•	0x24
•	0x29
•	0x2A
•	0x2E – Get Item
•	0x2F
•	0x36
•	0x27
•	0x65
•	0x66
•	0x6A
•	0x67
•	0x72

0xFA     <Hard Coded Text – 1st Byte of 2 Byte Pair>
•	0x01 – Test Spacing (For Icons)
•	0x02 – 手に入れた！
•	0x04 – イエス　ノー
•	0x05 - かべしんぶん　ミルフィーユ•タイムズ NO.
•	0x80 - <Player Name>
•	0x81 – <Player Gold Balance>
•	0x82 - <Player gold balance saved at certain point in the game and repeated later for comedic effect>

0xFB     <Jump to Other Line>
The two bytes following this byte jump to another line.  Dialog Address Table.....

0xFC     <???? – 1st Byte of 2 Byte Pair>
Pair of control bytes related to altering game variables.   For example, sometimes dialog begins as soon as a map is entered for special events.  0xFC byte pairs set some variable that prevents the dialog from popping up forever once the automatic dialog is experienced once.

0xFD     <Return>
0xFE     <Space>
0xFF     <End Line>	
Kanji Mode (0xF4)	The font tile at the font tile
0x50DA0 * 0x10 * <byte value>
is displayed.  This area contains kanji.  0xF3 shifts back to regular mode.

0x00	同
0x01	代
0x02	安
0x03	京
0x04	氷
0x05	河
0x06	王
0x07	子
0x08	巨
0x09	人
0x0A	々
0x0B	山
0x0C	時
0x0D	心
0x0E	大
0x0F	岩
0x10	日
0x11	回
0x12	火
0x13	水
0x14	木
0x15	年
0x16	上
0x17	下
0x18	平
0x19	和
0x1A	左
0x1B	右
0x1C	東
0x1D	西
0x1E	南
0x1F	北
0x20	国
0x21	女
0x22	姫
0x23	金
0x24	小
0x25	中
0x26	行
0x27	百
0x28	十
0x29	千
0x2A	万
0x2B	変
0x2C	身
0x2D	申
0x2E	二
0x2F	町
0x30	所
0x31	今
0x32	力
0x33	村
0x34	店
0x35	用
0x36	手
0x37	先
0x38	目
0x39	乱
0x3A	私
0x3B	友
0x3C	井
0x3D	戸
0x3E	元
0x3F	必
0x40	間
0x41	奴
0x43	本
0x44	自
0x45	分
0x46	気
0x47	失
0x48	死
0x49	入
0x4A	匹
0x4B	穴
0x4E	兵
0x4F	士
0x50	少
0x51	以
0x52	出
0x53	我
0x54	恐
0x55	近
0x56	当
0x57	湖
0x58	内
0x59	外
0x5A	海
0x5B	全
0x5C	主
0x5D	方
0x5E	向
0x5F	字
0x61	記
0x62	世
0x63	宝
0x64	法
0x65	口
0x6B – 0xD9 <Unused / Blank Spots>
0xF3	<Shift to Regular Mode> 

Control Characters Used in this Mode:
0xF4, 0xF6, 0xF8, 0xF9, 0xFA, 0xFC, 0xFD, 0xFE, 0xFF	
Jumbo Mode (0xF7)	Displays special 2x2 font tile at
0x51800 + 0x40 * <Byte Value>

0x00	タ
0x01	ダ
0x02	ゲ
0x03	ッ
0x04	!
0x05	?
0x06	な
0x07	に
0x08	ー
0x09	っ
0x0A	許
0x0B	せ
0x0C	ん
0x0D	ス
0x0E	ポ
0x0F	ア
0x10	～
0x11	レ
0x12	Z
0x13	..
0x14	ギ
0x15	ャ
0x16	ぐ
0x17	わ
0x18	同
0x19	じ
0x1C	ハ
0x1F	ぁ
0xF9	<SFX – 1st byte of 2 byte pair>
•	0x46 - Roar
0xFD	<Return & Shift to Regular Mode>
0xFE	<Jumbo Space>
0xFF	<End Line>